แน่นอนว่าถ้าเพิ่งเริ่มทำงาน หรือ ศึกษาการเขียนโปรแกรมใหม่ ๆ อาจจะยังไม่รู้จักกับคำ ๆ นี้กัน
.
วันนี้แอดจะสรุปเรื่องราวของ Model View Controller หนึ่งในรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่ได้รับความนิยมรูปแบบนี้ให้ทุกคนแบบง่าย ๆ ไปพร้อมกันน ^_^
.
⭐️ ทำไมต้อง MVC ?
ต้องบอกก่อนเลยว่า MVC นั้นเป็น pattern การเขียนโค้ดรูปแบบหนึ่งที่ได้รับความนิยมมาก
.
ซึ่งหากเริ่มเขียนซอฟแวร์แล้วยังมีฟังก์ชันน้อย หรือการทำงานน้อยก็อาจจะไม่เห็นภาพว่าทำไมต้องเขียนโค้ดให้เป็น pattern แต่ถ้าเขียนไปซักระยะหนึ่งมีฟังก์ชันเยอะขึ้น
.
แล้วยิ่งถ้าไม่ได้เขียนนานแล้วกลับมาดูโค้ดที่ไม่มีการจัดรูปแบบ รับรองเลยว่าปวดหัวแน่นอน ซึ่งการเขียนโค้ดแบบเป็น pattern นี่แหละจะช่วยให้การอ่านโค้ดง่ายขึ้น <3 <3
.
และการจัดองค์ประกอบโค้ดที่แยกการทำงานชัดเจนที่เป็นจุดเด่น MVC จะทำให้เราเขียนโค้ดอย่างเป็นระบบและจัดการโค้ดได้ง่ายขึ้น
.
🔥 ว่าแต่แนวคิดของ MVC เป็นยังไงกันนะ ?
.
แนวคิดของ MVC นั้นจะใช้หลักการของ OOP ซึ่งแบ่งการทำงานหลักๆให้เป็นรูปแบบของ object
.
โดยที่ MVC นั้นกำหนดชื่อ object มาให้เรียบร้อยแล้วตามชื่อเลยก็คือ model view controller ซึ่งมีกติกาคือ การทำงานของทั้ง 3 object นี้จะแยกการทำงานอย่างชัดเจนห้ามก้าวก่ายงานกันเด็ดขาด
⚡️ หน้าที่ และ ความสำคัญของแต่ละส่วน
.
✅ เริ่มต้นที่ Model
.
การทำงานของ model จะจัดการส่วนที่ข้อมูลทั้งหมดจะคอยเตรียมข้อมูลที่เหมาะสมไว้ และ model นั้นจะทำงานเมื่อ controller ร้องขอเท่านั้น
.
✅ ตามด้วย View
.
view นั้นจะจัดการส่วนของหน้าตาทั้งหมด หรือส่วนติดต่อกับผู้ใช้โดยตรง (user interface)
.
โดย view นั้นจะรับคำสั่งการทำงานจาก controller และเป็นตัวกลางให้ผู้ใช้ติดต่อกับ controller อีกด้วย
.
✅ ส่วนสุดท้ายก็คือ Controller
.
controller เปรียบเสมือนกับมันสมองและศูนย์กลางการทำงานทั้งหมด จะเห็นว่าทุกส่วนนั้นจะติดต่อกับ controller ทั้งหมดรอคอยคำสั่งจาก controller นอกจากนี้ controller จะจัดการทำงานในส่วนที่เป็น logic ทั้งหมดในระบบ
.
👨💻 การประยุกต์ใช้งาน MVC
อ่านทฤษฎีมาแล้วอาจจะยังไม่เห็นภาพว่าแต่ละส่วนทำงานยังไง งั้นมาลองยกตัวอย่างจากการล็อคอินเข้าสู่ระบบของเว็บไซต์ทั่วไปกันเลย
.
👉 เริ่มจากผู้ใช้จะติดต่อ V จากนั้น V จะไปบอกกับ C
C เมื่อได้รับข้อความจาก V จะส่งข้อมูลไปหา M เพื่อตรวจสอบความถูกต้อง
.
👉 เมื่อ M ได้ยินดังนั้นจึงติดต่อฐานข้อมูลเพื่อตรวจสอบข้อมูลแล้วส่งผลกลับไปหา C
.
👉 เมื่อ C ได้ผลการตรวจสอบมาก็จะดำเนินงานในขั้นต่อไป โดยที่มี 2 กรณีคือ
.
👉 การลงชื่อเข้าใช้สำเร็จ : C สั่งการให้ V ติดต่อผู้ใช้โดยเปลี่ยนหน้าเว็บเป็นหน้าเว็บหลัก
.
👉 การลงชื่อเข้าใช้ไม่สำเร็จ : C สั่งการให้ V ติดต่อผู้ใช้โดยบอกผู้ใช้ว่า รหัสผ่าน ผิดพลาด
.
👉 สุดท้ายแล้วก็อยากให้ทุกคนลองนำ MVC ไปใช้กับการเขียนโค้ดของแต่ละคนดู
.
อาจจะเป็นการลองคิดเล่นๆว่าถ้าเป็นโปรเจคของเราจะแบ่งการทำงานเป็น MVC ยังไงบ้าง หรือจะเอาไปใช้จริงเลย แต่ก็ฝากไว้ว่าการนำ pattern ไปใช้ในการเขียนโค้ดนั้นไม่สูญเปล่าแน่นอน
.
เพราะนอกจากจะทำให้เรากลับมาอ่านโค้ดของเราได้ง่ายขึ้นแล้ว ยังทำโค้ดให้ออกมาเป็นระบบทำให้จัดการได้ง่าย
.
และเป็นการกำหนดแบบแผนให้คนอื่นที่มาร่วมทำงานกับเราทำงานไปในทิศทางเดียวกันได้อีกด้วย 😍
.
#BorntoDev - 🦖 Digital Academy ให้การพัฒนาทักษะเทคโนโลยีเป็นเรื่องสนุกไปพร้อมกับเรา